java 知识汇总
一、springboot cloud
1.maven 配置
parent:org.springframework.boot:sping-boot-starter-parent
dependencies:spring-boot-starter-test、config、eureka、eureka-server、feign、devtools
2.@SpringBootApplication
3.cloud注册中心:
@EnableEurekaServer
配置文件:server.port=1111
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
4.cloud生产者
@EnableDiscoveryClient
配置:server.port=1112
spring.application.name=生产者名称
eureka.client.serverUrl.defaultZone=http://localhost:1111/eureka/
5.cloud消费者
方式一:Ribbon + RestTemplate
@EnableDiscoveryClient // app
@Bean
@LoadBalanced // 负载均衡
RestTemplate restTemplate(){
return new RestTemplate();
}
@RestController //controller
@RequstMapping(value="/first") //controller方法
@ResponseBody //controler方法
实现方法:retrun restTemplate.getForEntity("http://生产者名称/first").getBody();
方式二:Feign 是一个声明式的伪Http客户端,它使得写Http客户端变得更简单
@EnableFeignClients //App
@FeignClient(name="生产者名称") // 接口
@RequestMapping(method=RequestMethod.GET, value="/value") // 接口方法
6.断路器:Hystrix
如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务
瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应
1.Ribbon + RestTemplate
@EnableHystrix // 启动类
@HystrixConmmad(fallbackMethod="hiError")
hiError方法
2.Feign
feign.hystrix.enable=true
@FeignClient(value="服务名", fallback=处理Hystric的类.class) // 接口类
处理Hystric的类 implements 接口类
3.Hystrix Dashboard 断路器仪表盘
依赖spring-cloud-starter-hystrix-dashboard
@EnableHystrixDashboard // 启动类
访问http://ip:port/hystrix 点击monitor stream
7.Zuul:主要功能是路由转发和过滤器
1.路由转发
@EnableZuulProxy //启动类
server.port=8769
zuul.routes.api-a.path=/api-a/**
zuul.routes.api-a.serviceId=service-ribbon
zuul.routes.api-b.path=/api-b/**
zuul.routes.api-b.serviceId=service-feign
访问http://ip:8769/api-a/转发到service-ribbon
访问http://ip:8769/api-b/转发到service-feign
2.zuul服务过滤
过滤类 extends ZuulFilter,覆盖filterType,filterOrder,shouldFilter,run方法
filterType:pre路由之前 | routing路由之时 | post路由之后 | error
filterOrder:过滤顺序
shouldFilter:是否过滤
run:过滤逻辑
8.Config:在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件
1.Config Server
@EnableConfigServer // 启动类
spring.cloud.config.server.git.uri=仓库地址
spring.cloud.config.server.git.searchPaths=仓库路径
spring.cloud.config.label=分支
spring.cloud.config.server.git.username=用户名
spring.cloud.config.server.git.pathword=密码
2.Config Client
spring.cloud.config.label=master
spring.cloud.config.profile=dev
spring.cloud.config.url=config server的网址
9.高可用分布式配置中心,将配置中心做成一个微服务,将其集群化,从而达到高可用
1.eureka-server 8889
eureka.instance.hostname=
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
@EnableEurekaServer
2.改造Config Server 8888
eureka.client.serviceUrl.defaultZone=http://eureka-server:8889/eureka
@EnableEureka // 启动类
3.改造Config Client
注掉url
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
spring.cloud.config.discovery.enabled=true // 从配置中心读取
spring.cloud.config.discovery.serviceId=config-server // 配置中心服务名
10.Bus 消息总线:将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控
1.依赖spring-cloud-starter-bus-amqp 下载rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
11.Sleuth 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控
12.高可用的服务注册中心
12.Docker:是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器
添加插件:Spotify 的 docker-maven-plugin 插件是用maven插件方式构建docker镜像的。
FROM:是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器
VOLUME:使容器中的一个目录具有持久化存储数据的功能,该目录可以被容器本身使用,也可以共享给其他容器。
ADD:从src目录复制文件到容器的dest
ENTRYPOINT:指定Docker容器启动时执行的命令,可以多次设置,但是只有最后一个有效。
EXPOSE:为Docker容器设置对外的端口号
docker run -p port:port -t xxx
docker-compose up
docker-compose -f docker-compose.yml -f docker-compose-dev.yml up
二、Spring Boot
简化新Spring应用的初始搭建以及开发过程
1.特点
java 知识汇总的更多相关文章
- Java知识汇总——思维导图
转载:https://www.cnblogs.com/java1024/p/8757952.html Java知识点汇总,从基础到常用的API.还有常用的集合类,总结的很详细.图片是从论坛里面找到的, ...
- java知识汇总
文章目录 Java基础知识 基本类型 类别及其对应包装类 1. byte---Byte 2. char---Character 3. short---Short 4. int---Integer 5. ...
- Java快速入门-03-小知识汇总篇(全)
Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- JAVA基础知识之面向对象编程知识汇总
JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...
- Oracle手边常用70则脚本知识汇总
Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...
- JSP知识汇总
JSP知识汇总 一.简介 > HTML - HTML擅长显示一个静态的网页,但是不能调用Java程序. > Servlet - Servlet擅长调用Java程序和后台进行交互,但是它不擅 ...
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解(转载)
相关参考文章: 谈谈自己对REST.SOA.SOAP.RPC.ICE.ESB.BPM知识汇总及理解 微服务SOA架构与RPC远程过程调用 SOA和微服务架构的区别 SOA: 维基百科解释:SOA:面向 ...
- web前端project师知识汇总
分类: Web开发应用 一.何为Web前端project师? 前端project师,也叫Web前端开发project师.他是随着web发展.细分出来的行业.Web前端开发proj ...
随机推荐
- Spark安装过程纪录
1 Scala安装 1.1 master 机器 修改 scala 目录所属用户和用户组. sudo chown -R hadoop:hadoop scala 修改环境变量文件 .bashrc , 添加 ...
- 第五次Scrum冲刺
第五次Scrum冲刺 1.成员今日完成情况 队员 今日完成任务 刘佳 前端初步构建 李佳 后端设计初级阶段 周世元 数据设计 杨小妮 博客编写 许燕婷 管理团队当日及次日任务 陈水莲 测试矩阵用例设计 ...
- python判断任务是CPU密集型还是IO密集型
目前已经知道,在需要并发执行任务的时候,需要使用多线程或者多进程;如果是IO密集型任务,使用多线程,如果是CPU密集型任务,使用多进程;但问题是,经常我们会遇到一种情况就是:需要被执行的任务既有IO操 ...
- JAVA程序员常用英语
JAVA程序员常用英语 干程序员这行实在是离不开英语,干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这 ...
- ceph部署手册
CentOS7.2部署Luminous版Ceph-12.2.0 在CentOS7.2上安装部署Luminous版Ceph-12.2.0.由于ceph的Luminous版本默认使用bluestore作为 ...
- 十分钟搞定pandas
转至:http://www.cnblogs.com/chaosimple/p/4153083.html 本文是对pandas官方网站上<10 Minutes to pandas>的一个简单 ...
- struts原理图
n the diagram, an initial request goes to the Servlet container (such as Jetty or Resin) which is pa ...
- 深入理解hello world
阅读目录 为什么所有东西都是从类开始的 为什么总是需要有一个“main”方法 HelloWorld的字节码 HelloWorld在JVM中是如何运行的 对于每个Java程序员来说,HelloWorld ...
- Numpy random arange zeros
seed( ) 用于指定随机数生成时所用算法开始的整数值. .如果使用相同的seed( )值,则每次生成的随即数都相同: .如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间 ...
- java程序重要节点
1.前台页面 2.前台页面到controller层跳转 和controller层的承上启下(jsp页面和java程序的桥梁) 3.serviceIpmle 程序处理的逻辑层 3.mybatis操作数据 ...