Spring Cloud

谈谈最近副业挣钱的感受,一要形成体系,二要找平台加持

百般思念 提交于 2020-08-19 16:19:22
最近我的博文发表得比较少,因为除了主业之外,我把时间都用在录制视频和写书等方面。这几天正好录制完一门课,和出版社谈好的一本书也全部交稿,所以趁着最近构思下本书和后继视频课的时机,总结了一下副业挣钱的模式。所以在这篇博文里,将分享下最近我经营副业的各种心得。 1 总是先从搬砖的钱挣起,但同时要规划自己的知识体系 想到挣钱,不少人第一想到的是通过公众号或其它文章发文,或者到某网发视频积累粉丝,然后再通过广告等方式变现。这种方式一定能挣到钱,但如果文章或视频内容停留在初级阶段,每天的收益估计是有限的,而且要做到有收益的地步,持续时间会很长。 比如我是做Java的,如果我就发非常基础的文章,比如String的不可变特性,以及集合的扩容等,哪怕天天发文,文章数量非常多,要积累1000个粉丝估计会很吃力,但如果我发的文章写的书录的视频包含比较深的要素,比如分布式并发组件,底层代码分析,或者结合大厂面试介绍技术经验,总之不是随便哪里都能找到的,积累粉丝会快很多。 再打个不恰当的比喻,如果初中毕业就去搬砖,确实能立即挣到钱,当如果当时再静下心读个高中,或者本科甚至硕士,那么挣钱的效率会快很多。我这里无意贬低任何挣钱的渠道和模式,这里只是想说,在能力一般的前提下,可以通过写文章等手段提升自己,但不能本末倒置,当下的任务是完善知识体系,而不是计较于当下的收益。 再以Java举例,如何完善知识体系

SpringCloud返回的是xml格式而非JSON数据

蓝咒 提交于 2020-08-19 15:59:44
一、问题描述: 最近接触eureka,写了一个接口,使用@RestController注解修饰了类,预期是返回json格式的数据,但是结果返回的是xml格式的数据。 二、问题分析: 原因是因为直接或间接引入了 jackson-dataformat-xml 依赖导致的。我这里是因为引入了 spring-cloud-starter-netflix-eureka-client 以及 fastjson 两个包,而这两个依赖里面都包含了 jackson-dataformat-xml 依赖。 三、解决方案: 方案一: 如下图,在依赖中手动排除掉 jackson-dataformat-xml 依赖。 方案二: 在类上使用@RestController 或者 在接口上使用@ResponseBody注解,同时在接口映射的注解中做如下配置: @GetMapping(value = "/list", produces = { "application/json;charset=UTF-8" })。 来源: oschina 链接: https://my.oschina.net/u/4278795/blog/4512337

分布式系统架构简单介绍

岁酱吖の 提交于 2020-08-19 13:37:47
目录: 一、什么是分布式系统? 二、为什么要走分布式系统架构? 三、系统如何进行拆分? 四、分布式之后带来的技术挑战? 一、什么是分布式系统? 在谈分布式系统架构前,我们先来看看,什么是分布式系统? 假设原来我们有一个系统,代码量30多万行。现在拆分成20个小系统,每个小系统1万多行代码。 原本代码之间都是直接基于Spring框架走JVM内存调用,现在拆开来,将20个小系统部署在不同的机器上,然后基于分布式服务框架(比如dubbo)搞一个rpc调用,接口与接口之间通过网络通信来进行请求和响应。 所以分布式系统很重要的特点就是服务间要跨网络进行调用,我们来看下面的图: 此外,分布式系统可以大概可以分成两类。 1. 底层的分布式系统。 比如hadoop hdfs(分布式存储系统)、spark(分布式计算系统)、storm(分布式流式计算系统)、elasticsearch(分布式搜索系统)、kafka(分布式发布订阅消息系统)等。 2. 分布式业务系统 分布式业务系统,把原来用java开发的一个大块系统,给拆分成多个子系统,多个子系统之间互相调用,形成一个大系统的整体。 举个例子,假设原来你做了一个OA系统,里面包含了权限模块、员工模块、请假模块、财务模块,一个工程,里面包含了一堆模块,模块与模块之间会互相去调用,1台机器部署。 现在如果你把他这个系统给拆开,权限系统,员工系统,请假系统

Java必备主流技术流程图,写得非常好!

元气小坏坏 提交于 2020-08-19 03:24:23
作者:Jay_huaxiao https://juejin.im/post/5d214639e51d4550bf1ae8df 1.spring的生命周期 Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要; 首先容器启动后,对bean进行初始化 按照bean的定义,注入属性 检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如BeanNameAware等 以上步骤,bean对象已正确构造,通过实现BeanPostProcessor接口,可以再进行一些自定义方法处理。如:postProcessBeforeInitialzation。 BeanPostProcessor的前置处理完成后,可以实现postConstruct,afterPropertiesSet,init-method等方法, 增加我们自定义的逻辑, 通过实现BeanPostProcessor接口,进行postProcessAfterInitialzation后置处理 接着Bean准备好被使用啦。 容器关闭后,如果Bean实现了DisposableBean接口,则会回调该接口的destroy()方法 通过给destroy-method指定函数,就可以在bean销毁前执行指定的逻 2.TCP三次握手,四次挥手

rabbitmq+sleuth+zinkip 分布式链路追踪

纵饮孤独 提交于 2020-08-19 00:57:51
我们都知道,微服务之间通过feign传递,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失败。当业务流程足够复杂时,一个完整的HTTP请求调用链一般会经过多个微服务系统,要通过日志来跟踪一整个调用链变得不再那么简单。通过sleuth可以很方便的看出每个采集请求的耗时情况,分析出哪些服务调用比较耗时,当服务调用的耗时随着请求量的增大而增大时,可以针对业务做一些优化措施。所以我们可以通过我们可以通过Spring Cloud Sleuth来解决这个问题。这里我们将演示如何通过Spring Cloud Sleuth来追踪这个过程,并借助Zipkin以图形化界面的方式展示。 展示之前,分别介绍一下rabbitmq、sleuth、zinkip。 rabbitmq RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 sleuth和zinkip sleuth 是spring cloud的组成部分之一,为springcloud应用实现了一种分布式追踪解决方案,其兼容了zinkip,HTrace和log

Feign终极解析

风格不统一 提交于 2020-08-18 21:31:27
Feign简介 在上一篇文章中分析了Eureka的注册、续约、服务剔除、服务自我保护等机制,地址在https://blog.csdn.net/lgq2626/article/details/80288992。这篇分析SpringCloud的feign。SpringCloud微服务项目之间调用是通过httprest请求来进行服务调用的,之前我们会用到HttpClient等工具来进行服务请求,Spring对这种请求进行了处理,封装成了可声明式的web客户端,使得编写web客户端更容易,feign还支持可插拔的编码器和解码器,Spring在用的时候增加了对@requestMapping的处理,同时,SpringCloud还对feign集成了注册中心(eureka)和客户端负载均衡(ribbon),使得我们拥有一个客户端负载均衡的web请求客户端。 Feign在项目中的配置和使用 在Springcloud中使用feign的时候,需要在配置类中加入一个@EnableFeignClients注解。代码如下: @SpringBootApplication//springboot 启动类 @EnableFeignClients//开启eureka扫描 @EnableDiscoveryClient//开启eureka客户端 public class Application { public

为什么像王者荣耀这样的游戏 Server 不愿意使用微服务?

≯℡__Kan透↙ 提交于 2020-08-18 19:25:54
来源: zhihu.com/question/359630395/answer/954452799 背景介绍: hongjic93 是这样回答的: brice 是这样回答到: 今天在知乎上看到这样一个问题:"为什么游戏公司的server不愿意微服务化?" 背景介绍: “ 笔者最近去面试了家游戏公司。 最近面试了一家游戏公司(满大间的,有上市) 我问他,公司有没有做微服务架构的打算及考量? 他很惊讶的说,我没听说过微服务耶,你可以解释一下吗? 我大概说了,方便测试,方便维护,方便升级,服务之间松耦合,可多语言开发,自动扩容…之类的点 然后他说游戏server不太需要微服务,因为要求real time,做微服务会影响效能,分模组来开发就好了 我也不确定,但微服务不是趋势吗?特别是大公司,游戏server的服务应该很容易拆分吧? hongjic93 是这样回答的: 比如moba类游戏/王者荣耀/LOL,就看王者荣耀的客户端吧,想象一下。 账号系统,符文系统,英雄系统,皮肤系统,好友系统,好友之间messaging,这些都是常规操作,如果流量足够大,当然可以用微服务的架构去做。 不过这不是这个游戏的核心,核心是MOBA:Multiplayer online battle arena。特性是什么? 10个人之间各种游戏事件的高速多向通讯 streaming/broadcast

SpringCloud组件的停更和替换说明

最后都变了- 提交于 2020-08-18 15:29:57
SpringCloud的Hoxton版本,和之前的版本相比,用新的组件替换掉了原来大部分的组件,老的组件现在处于 停更不停用 的状况。 详情见下图( × 的表示之前的组件,现在停更了的; √ 的表示新的替换后的组件): 描述: 服务注册中心: Eureka:官方停止更新,并且已经有更好的替代产品了,可以使用,但是官方已经不建议使用了(重度患者)。 Zookeeper:某些老系统,以前是用的Zookeeper + Dubbo,后来做技术升级,结果发现SpringCloud的Eureka停更了,然后就用了最少的技术切换,那么就用了Zookeeper做注册中心。 Consul:go语言开发的,也是一个优秀的服务注册框架,但是使用量较少,风头都被Nacos抢了。 Nacos:来自于SpringCloudAlibaba,在企业中经过了百万级注册考验的,不但可以完美替换Eureka,还能做其他组件的替换,所以强烈建议使用,是学习的重点。 服务调用: Ribbon:也进入了维护状态,停止更新了,但是Spring官方还在使用(轻度患者)。 LoadBalancer:Spring官方推出的一个新的组件,打算逐渐取代掉Ribbon,但是现在还处于萌芽状态。 服务调用2: Feign:Netflix 公司产品,也停止更新了。 OpenFeign:Spring社区等不了Netflix更新了

搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway项目

不羁的心 提交于 2020-08-18 15:06:55
前言 伴随着随着微服务概念的不断盛行,与之对应的各种解决方案也层出不穷。这毕竟是一个信息大爆发的时代,各种编程语言大行其道,各有各的优势。但是有一点未曾改变,那就是他们服务的方式,工作的时候各司其职,但是需要提供服务的时候必须要高度统一,这也是微服务的概念之一。日常的工作学习中,我个人更喜欢通用的解决方案,特别是能将不同编程语言亦或者不同编程框架整合到一起的那种,这种解决方案拉近了编程语言之间的距离,让开发者能更清楚的意识到编程语言只是工具,解决问题才是王道。好了口遁到此结束,接下来我就搭建一套.Net体系结合Java体系的项目架构。 概念介绍 接下来我们用到的技术栈名词主要涉及到ASP.NET Core、Nacos、Spring Cloud Gateway,接下来我们分别介绍所使用的的三种框架。 Nacos Nacos是阿里巴巴开源的致力于服务发现、配置和管理微服务的框架。提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。一般用到的最多的就是当做配置中心和注册中心。 中文官网地址: https://nacos.io/zh-cn/ 官方 GayHub GitHub地址: https://github.com/alibaba/nacos 下载地址: https://github.com/alibaba/nacos/releases