今天接触的微服务做一下总结
微服务框架
微服务框架的大致介绍:服务就是软件的意思,而微服务就是讲一个大的软件分成许多小块的软件,如果软件还是有多个功能的话可以再次划分。类似于spring框架中的三层架构思想
使用微服务框架都有哪些? :Spring Cloud Alibaba(spring cloud推出的,提供微服务开发的一站式解决方案)、Spring Cloud Netfix(spring推出的,主要是注册和开发)、Helidon(甲骨文开发的)、brpc(百度内部常用的)等
微服务中的聚合工程如何引用? :就是将一个工程当作依赖项添加到另外一个工程中,重点是坐标
服务注册中心是什么? :服务中心就是将许多软件集合到一块,统一管理,注册
市场上常用的服务注册中心 :Zookeeper(一般用于大数据)、Eureka(现在不常用,已经不维护了)、Nacos、Consul
服务注册中心的选型,如何挑选:社区活跃度(可以理解为是否经常维护),稳定性,功能是否强大,性能是否优越,成本大小等
暂时学习两种调用方式:
RestTemplate(可以实现服务的简易调用)
LoadBalancerClient(可以通过负载均衡算法获取服务注册中心的服务实例)
注解@LoadBalanced作用是 :我们使用LoadBalanced这个注解,描述对象时,系统底层会基于restTemplate进行远程服务调用,会被一个拦截器(Interceptor)拦截,然后进行功能的增强,功能增强指的是loadBalancerClient对象进行服务实例的获取。例如 给你拦下来加上了一个负载均衡的标签,其他公司要用你的时候要根据标签来用 。在Spring Cloud 微服务应用体系中,远程调用都应加载负载均衡。 我们在使用 RestTemplate 作为远程客户端的时候,开启负载均衡极其简单,使用 @LoadBalanced 就可以解决了
例如:配置类中有两个Computer类的bean,一个是笔记本电脑,一个是备用电脑。如果当前容器中已经有电脑bean了,就不注入备用电脑,如果没有,则注入备用电脑,这里需要使用到@ConditionalOnMissingBean
@ConditionalOnBean 当给定的在bean存在时,则实例化当前Bean,这个bean可能由于某种原因而没有注册到ioc里,这时@ConditionalOnBean可以让当前bean也不进行注册
@ConditionalOnMissingBean / 当给定的在bean不存在时,则实例化当前Bean,感觉这个是在多态环境下使用,当一个接口有多个实现类时,如果只希望它有一个实现类,那就在各个实现类上加上这个注解
@ConditionalOnClass 当给定的类名在类路径上存在,则实例化当前Bean
@ConditionalOnMissingClass 当给定的类名在类路径上不存在,则实例化当前Bean
Nacos是Alibaba公司基于springBood技术实现的一个注册中心,本质也是一个web服务,主要提供的核心功能有,1.服务的注册,2.服务的发现,3.服务的配置
负载均衡:简单的理解就是为了解决多台服务机器的业务调用,这个时候系统如何分配和调度资源,这个里面牵扯到了算法。
随机算法:
微服务中的配置中心:
微服务中的一个服务,这个服务的主要作用就是实现配置的实时更新,可以不用重启后端
微服务应用中客户端是通过长轮询的方从nacos获取数据。也可以说是
长轮询与短轮询,长轮询的理解就是,如长轮询即是在请求的过程中,若是服务器端数据并没有更新,那么则将这个连接挂起,直到服务器推送新的数据,再返回,然后进入循环周期。
短轮询每间隔一段时间发送请求来获取数据是否更新。
LRU算法:最近被访问的数据那么它将来访问的概率就大,缓存满的时候,优先淘汰最无人问津者。算法实现思路:基于一个双链表的数据结构,在没有满员的情况下,新来的 k-v 放在链表的头部,以后每次获取缓存中的 k-v 时就将该k-v移到最前面,缓存满的时候优先淘汰末尾的。
java中的四大引用:
强应用就是JVM内存满了的时候,GC也不会清理强引用的数据
软引用就是JVM内存不满的时候,GC不会清理软引用的数据,但如果内存满了就会清理软引用的数据
弱引用就是Java在每隔一段时间启动的垃圾回收机制,都会清理弱引用的数据,而这个时候强引用和软引用的数据并不会被清理
虚引更多的就是在这个对象被回收器回收的时候收到一个系统通知或者后续添加进一步的处理。
从强到弱的顺序就是 强引用>软引用>弱引用>虚引用
@SentinelResource("doGetResource") Sentinel 链路模式的注解,可以由客户端访问时,调用这个方法,就可以进行限流,后期可以写一些访问数据库的代码,例:当客户在访问一些重要文件时进行限流
更多推荐
微服务学习
发布评论