发表于: 2019-10-16 23:52:41
1 909
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
1、完成任务九
明天计划的事情:(一定要写非常细致的内容)
1、准备复盘ppt
遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)
1、Tuscany最终结果
1、结构
Add 接口
实现类
Calculator接口
实现类
composite
main方法
最简单的了
实在跑不起来
因为是不再更新的项目,攻略都是几年前的
很多东西都不知道是什么
依赖、Spring版本、Maven版本、jdk版本
一些攻略包括师兄日报讲可能是现在的版本和之前的代码有冲突
但是实在找不到可以运行的版本搭配
还是抓紧时间去学习 Spring Cloud 了
2、学习Spring Cloud
1、创建一个Spring boot 父项目
建一个Springboot 项目project
这里不需要src 可以删掉
然后在其下建立新的 Module 为其 子项目
这样学习后面的东西方便一些
2、创建一个eureka server
在创建Module的时候 选择 eureka server
然后在启动类加注解
声明是一个Eureka Server
修改配置文件
registerWithEureka表示是否将自己注册到Eureka Server
默认为 true 由于这里自己就是 Eureka Server 所以是false
fetchRegistry表示是否从Eureka Server获取注册信息
默认为 true 因为这是一个 单点 Eureka Server 不需要同步其他 Eureka 所以是false
ServiceUrl.defaultZone 设置与Eureka Server 的交互地址,查询和注册都依赖这个地址
然后运行,浏览器访问
没有注册服务,所有没有服务被发现
3、创建一个 Eureka Client
创建Module时候选择Client
然后在启动类加注解
表名是一个 Eureka Client
修改配置文件
ServiceUrl.defaultZone 这里填的是前面服务器的注册地址,表名将该服务注册到服务上
spring.application.name 是该服务的注册名称,一会儿在 Eureka Server 中将会看到
在写一个Controller 充当一个服务 为了方便和main放在一起了
然后运行
打开浏览器访问 8761 可以看到创建的 服务
然后访问 我们写的 Controller
4、分析
回看运行那一步就有意思了
因为是两个项目是分开运行的
先运行 Server 建立服务中心
然后在运行的 Client 注册服务
服务就可以运行了
可以做个试验
现在把服务挂掉
注册中心还有该服务
不过已经没有页面了
然后在运行main
浏览器访问
又可以使用了
通过控制 jar 程序的运行与否就可以控制服务是否启用
5、idea 运行两个 实例
这里 旧版的是
旧版打钩表示 只运行一个实例,新版打钩表示 允许运行多个实例
设置运行多个实例后
先运行一个 8762
然后修改端口 8763
然后看看服务中心
已经运行了两个实例了
6、ribbon
上面已经发布了两个服务,暂且看做是两个服务端
现在我们做一个客户端
Spring Cloud 有两种服务调用方式 ribbon+RestTemplate和feign
鉴于之前用过 RestTemplate,这里就使用前者
ribbon是一个负载均衡客户端
而Feign 默认集成了ribbon
建一个 Module 继承父pom
加入依赖
修改配置文件
上面都解释过每个的作用了
在main上加注解
@EnableDiscoverClient 向服务中心注册 并注入一个bean:RestTemplate
@LoadBalanced 表明开启负载均衡
写测试需要的服务层.png)

.png)
之前我们注册的服务明是 SERVICE-HI 因为他俩端口不同
所以这里可以用服务名来代替
这里即是 我们之前注册的服务的url
然后在写一个 controller 调用刚才的 Service
运行,打开浏览器访问
刷新
两个Service将交替运行
我们在Service 通过RestTemplate完成了负载均衡
7、现在的架构如下
8761:服务中心 (注册服务:8762、8763、8764)
8762和8763 :提供了一个实现, 相当于之前RMI 中的远程接口(实现类)
8764:对于浏览器(客户端)而言是 服务端,并且实现负载均衡指向8762和8763
到这里基本可以完成任务9的要求了
8、结构
server 是 服务中心
Client 是两个 Service层
ribbon 是两个 web 层
这里可以看出在 Spring Cloud中
将RMI 中的远程接口实现类 转为了 url接口
不过想想url 更方便,在服务中心也更好管理
打包jar 发布到服务器
然后Nginx对两个web做一下负载均衡就完事了
运行
这是 web 1 Service1
刷新
这是 web 1 Service 2
刷新
这是 web 2 Service 1
刷新
这是 web2 Service 2
对比 任务八 ,Spring Cloud 真的是方便
如获珍宝
总结:
任务名称:JAVA=TASK9
任务耗时:10.16-10.17
技能脑图:
个人
官方
任务总结:
任务进度是否符合预期,是否延期,如果延期,原因是什么,如何避免下次继续延期
进度基本符合预期
脑图对比分析
基本相同
任务中遇到哪些疑难问题,最终是如何解决的,有哪些值得分享的收获
(对于任务总结应该更多的描述出任务所走的弯路以及遇到的困难,不应鼓励将知识点无脑的堆砌在总结之中)
任务九 是利用框架在任务八的基础上进行操作
敲开 分布式的大门
这里先学了Tuscany
但是由于网上攻略少,而且 内容不全
调了很长时间都没能跑通一个例子
转而去学了 Spring Cloud
Spring Cloud 真是一个好东西
写完任务八 在来写 Cloud 感觉轻松了不少
Spring Cloud 有很多知识点 还需要多多学习
这里稍微赶了一下进度
因为车队马上要发车了
打算先进复盘 然后在跟进后续的学习
评论