最近搞一个性能统计工具,这个工具有个小功能是:逐帧统计某算法的性能指标,听起来复杂,简单说就是,需要达到程序的代码段a和c,分别位于(包裹)另一个段程序的算法执行逻辑前后。
调研了几种进程同步方法,发现信号量是最合适的,但这玩意,自从毕业后就没用过了,由于自己之前都是用的java,python等高级语言偏多,而且都是web方面,基本上没有进程间同步的场景,突击学习下,顺便也梳理研发过程中的一些小taps。
图示主要参考如下文章:
UML小结以及基于领域模型的系统设计初步:https://www.cnblogs.com/colder/archive/2012/03/06/2381653.html
方法在编译时静态绑定,依托于具体的类型
接口对应的方法是在运行时动态绑定
进程内初始化顺序 初始化导入包的常量和变量(可以导出的变量)—>包的init函数,不同文件内顺序是未定义的, 同一文件调用顺序是定义顺序—>main包内的常量变量和init-—>main函数
阅读:
Go语言高级编程(Advanced Go Programming):https://chai2010.gitbooks.io/advanced-go-programming-book/content/
此文章和Go编程时光同一个作者,所以高度相似
零基础学 Go 语言:mp.weixin.qq.com/mp/appmsgalbum?__biz=MzU1NzU1MTM2NA==&action=getalbum&album_id=1337200768771866624&scene=173
Go编程时光:https://golang.iswbm.com/preface.html
RabbitMQ 从入门到精通 (一):https://www.cnblogs.com/dwlovelife/p/10982735.html
Ubuntu安装RabbitMQ:https://www.cnblogs.com/kingsonfu/p/10579366.html
Eureka解决了服务如何进行注册,注册到哪里,服务消费者如何获取服务生产者的服务信息的问题,但是Eureka只是维护了服务生产者、注册中心、服务消费者三者之间的关系,真正的服务消费者调用服务生产者提供的数据是通过Spring Cloud Ribbon来实现的。
服务消费者是将服务从注册中心获取服务生产者的服务列表并维护在本地的,这种客户端发现模式的方式是服务消费者选择合适的节点进行访问服务生产者提供的数据,这种选择合适节点的过程就是Spring Cloud Ribbon完成的。
Spring Cloud Ribbon客户端负载均衡器由此而来。
客户端负载均衡的特点
由客户端内部程序实现,不需要额外的负载均衡器软硬件投入。
程序内部需要解决业务服务器不可用的问题,服务器故障对应用程序的透明度小。
程序内部需要解决业务服务器压力过载的问题。
我们知道,Eureka进行服务的注册和发现,使用Ribbon实现服务的负载均衡调用,还知道了使用Feign可以简化我们的编码。但是,这些还不足以实现一个高可用的微服务架构。
例如:当有一个服务出现了故障,而服务的调用方不知道服务出现故障,若此时调用放的请求不断的增加,最后就会等待出现故障的依赖方 相应形成任务的积压,最终导致自身服务的瘫痪。
Spring Cloud Hystrix正是为了解决这种情况的,防止对某一故障服务持续进行访问。Hystrix的含义是:断路器,断路器本身是一种开关装置,用于我们家庭的电路保护,防止电流的过载,当线路中有电器发生短路的时候,断路器能够及时切换故障的电器,防止发生过载、发热甚至起火等严重后果。
Spring Cloud Feign 是一个声明web服务客户端,这使得编写Web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign。
简单的可以理解为:Spring Cloud Feign 的出现使得Eureka和Ribbon的使用更为简单。
Eureka负责服务的注册与发现,如果学习过Zookeeper的话,就可以很好的理解,Eureka的角色和 Zookeeper的角色差不多,都是服务的注册和发现,构成Eureka体系的包括:服务注册中心、服务提供者、服务消费者。
参考教程:
Spring Boot 2.x基础教程:https://blog.didispace.com/spring-boot-learning-2x/
Spring Boot:https://blog.didispace.com/categories/Spring-Boot/
美团技术这篇文章不错,
不可不说的Java“锁”事:https://tech.meituan.com/2018/11/15/java-lock.html
简单了解相关名词和概念。
教程地址:跟我学Spring Cloud(Finchley版)
Spring Cloud系列教程:www.itmuch.com/spring-cloud/spring-cloud-index/#一、跟我学Spring-Cloud系列
公司有个外包的项目,未来可能需要转为自研,把之前的java捡起来吧。
本笔记源于:Spring Boot 入门 - 目录:https://www.iteye.com/blog/rensanning-2355928
clion打断点,报错clion the break point will not be hit
最近使用clion作c++研发,调试程序时发现奇怪问题。debug断点可以打上,但无法拦截,并且debug时clion断电显示一个内部有斜杠的圈。
Update your browser to view this website correctly. Update my browser now