发表于: 2019-10-21 23:41:44

1 872


一、今天完成的事情:

主要完成springcloud的学习


1.1 Eureka:作为服务注册与发现的组件
开启1个 server作为注册中心
开启两个 client作为服务提供者,是一个服务组件
client1:
client2:
2.使用 ribbon+restTemplate实现客户端的负载均衡
结构
2.1此时有2个client,1个ribbon
测试:
访问地址不变,调用不同的服务端口
调用10087端口
调用10088端口
此时的架构总结:
一个服务注册中心: eureka server,端口号为10086
两个eureka client 工程,即两个服务,端口号为:10087,10088
一个ribbon负载均衡客户端,端口号为:10090
实现方式:当sercvice-ribbon通过restTemplate调用eureka client的home接口时,因为用ribbon进行了负载均衡,会轮流的调用eureka client:10087和10088 两个端口的home接口;
2.2部署到服务器
ribbon使用nginx进行负载均衡
打包放到阿里云。
运行命令:  nohup java -jar shareniu.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。


3.feign服务

具体实现和ribbon相似。
结构:

有三个特点:
3.1.Feign 采用的是基于接口的注解。
3.2.Feign 整合了ribbon,具有负载均衡的能力。
3.3.整合了Hystrix,具有熔断的能力
4. Hystrix组件断路器
工作原理:在微服务架构中,一个请求需要调用多个服务,当一个较底层的服务如果出现故障,会导致连锁故障。当对特定的服务的调用的不可用达到一个阀值(Hystric 是5秒20次) 断路器将会被打开。 断路打开后,可用避免连锁故障,fallback方法可以直接返回一个固定值。
而在Feign中是自带该组件的,只要在配置文件中设置即可
feign.hystrix.enabled=true
然后在接口中加上指定的fallback的类即可。
结构:同上
接口要指明熔断方法

熔断方法要实现接口

把两个client关掉,会调用调用熔断方法,如下图。

5.Zuul路由网关
Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。
主要配置它配置文件,实现服务消费者的负载均衡。和nginx的作用相同。
二、明天计划的事情:
主要完成复盘ppt
三、遇到的问题:
1.
四、收获:
1.初步了解spring-cloud的服务的注册与发现(Eureka),服务消费者(Feign和Ribbon),熔断器(Hystrix),路由网关(zuul)这些基础的组件,通过几个简单的配置,就可以实现分布式集群配置,方便多了。

2.任务八总结。

任务名称:java=TASK8

成果链接:https://github.com/baiyunzhong/jnshu/tree/master/task8

任务耗时:2019-10-06-2019-10-12 正常 建议7天,我共用时7天  

官方脑图

自己脑图

任务总结:

1.任务耗时七天,进度比较正常。

2.任务中主要是部署两个服务端随机访问,了解了下系统间的调用,用nginx配置两个web端,然后用web随机调用两个不同的service端。学习了安全框架shiro。

   a、RMI:全称是Remote Method Invocation-远程方法调用,是纯Java的网络分布式应用系统的核心解决方案之一;

        支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。

      RMI的主要优点:

        1. RMI是Java编写的, 具有 “编写一次,到处运行 ” 的特性。任何基于RMI的系统均可100%地移植到 任何Java虚拟机上

        2.面向对象:RMI可将完整的对象作为参数和返回值进行传递直接通过网络传输对象数据。

        3.可移动属性:RMI可将属性从客户机移动到服务器,或者从服务器移到客户机。

        4.设计方式:对象传递功能使您可以在分布式计算中充分利用面向对象技术的强大功能。

        5.安全:RMI使用Java内置的安全机制保证下载执行程序时用户系统的安全。

   b、spring整合和RMI:编写一个demo,我们分为两部分,一部分是server端的代码,一部分是client端的代码,client端的代码主要是为了使用server端的代码。

    c、安全框架 shiro

        RBAC概念:基于角色的访问控制,什么用户拥有什么角色实现什么功能。

       4大核心功能:认证,授权,会话管理,加密。

       3大核心组件:Subject 主体 ,SecurityManager 安全管理器,Realm 域


3.任务九总结。

任务名称:java-TASK9

成果链接:https://github.com/baiyunzhong/task9

任务耗时:2019-10-13-2019-10-21 正常 建议7天,我共用时8天  

官方脑图:


技能脑图:


任务总结:

a.是否符合预期及解决办法:

符合预期。主要学习了SOA和SCA的思想,然后学习spring-boot和spring-cloud.

b.脑图总结:

SOA:是面向服务编程,是对面向对象的衍生,主要的应用范围是一个项目。

SCA:是一中架构的方式,实现了SOA的架构思想。

Spring-Boot:简化了Spring的应用开发,通过少量代码就可以创建一个Spring项目,简化了初始的配置,优化了开发过程。核心思想为:约定大于配置,一切自动完成。

Spring-Cloud: 在SpringBoot的基础上把各个框架和模块进行管理。是微服务的一种管理分布式管理框架。



返回列表 返回列表
评论

    分享到