Spring Cloud

领课教育系统,在线教育(录播+直播)技术解决方案

青春壹個敷衍的年華 提交于 2020-08-14 13:51:38
线下培训机构如何低成本实现在线知识付费,并拥有自主 独立域名的在线教育系统网站 ,领课在线教育系统支持PC端和移动端小程序播放,可满足各类在线教学需求。 领课教育系统 - 技术说明文档 1. 技术架构图 后台技术说明: 分布式微服务架构 注册中心: Netflix Eureka 配置中心: Spring Cloud Config 服务网关: Netflix Zuul 客服端负载均: Netflix Ribbon 数据库连接池: Alibaba Druid 链路追踪: Spring Cloud Sleuth + Zipkin 应用管理: Spring Boot Admin 文档框架: Swagger 持久层框架: Mybatis 模板引擎: Freemarker 注:列出主要组件,其他组件因太多,不一一列出 前台技术说明: 前后端分离架构 Vue.js: 渐进式技术栈,足以应付任何规模的应用。 Nuxt.js: 服务端渲染,有效地解决单页面应用的 SEO 的问题。 2. 应用架构图 来源: oschina 链接: https://my.oschina.net/u/4386758/blog/4277191

Java面试宝典PDF电子版百度云资源免费下载

走远了吗. 提交于 2020-08-14 12:46:53
博主的Java技术交流群里面很多群友在最近面试完之后,都将面试题发到了群里一起讨论,并且都将答案讨论出来了 ,但是面试题都比较零散,所以博主将大家和博主自己搜集的面试题统一整理了下,并且全部归类了20多个分类,历时半个多月终于整理的也差不多1000多题。 博主已经将这些面试题整理成了一个Java面试宝典PDF版的 ,pdf下载量已经达到2w以上了。( 文末附百度云链接 ) 好了,废话不多说,本手册目前为第一版,内容有以下目录: JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 String面试题 Spring Boot面试题 Spring Cloud面试题 RabbitMQ面试题 Dubbo 面试题 MyBatis 面试题 ZooKeeper 面试题 数据结构面试题 算法面试题 Elasticsearch 面试题 Kafka 面试题 微服务 面试题 Linux面试题 PDF部分截图: 好了,由于太多,暂时列举部分截图,还有很多无法一一截图。 Java面试宝典PDF版下载地址: 百度云链接: https://pan.baidu.com/s/1vQL1d3

Java 处理 Exception 的 9 个最佳实践!

六眼飞鱼酱① 提交于 2020-08-14 12:34:26
在Java中处理异常并不是一个简单的事情。 不仅仅初学者很难理解,即使一些有经验的开发者也需要花费很多时间来思考如何处理异常,包括需要处理哪些异常,怎样处理等等。 这也是绝大多数开发团队都会制定一些规则来规范对异常的处理的原因。而团队之间的这些规范往往是截然不同的。 本文给出几个被很多团队使用的异常处理最佳实践。 1. 在Finally块中清理资源或者使用try-with-resource语句 当使用类似InputStream这种需要使用后关闭的资源时,一个常见的错误就是在try块的最后关闭资源。 public void doNotCloseResourceInTry() { FileInputStream inputStream = null; try { File file = new File("./tmp.txt"); inputStream = new FileInputStream(file); // use the inputStream to read a file // do NOT do this inputStream.close(); } catch (FileNotFoundException e) { log.error(e); } catch (IOException e) { log.error(e); } }

springcloud CorsFilter 解决跨域问题

依然范特西╮ 提交于 2020-08-14 11:41:46
@Configuration public class GatewayCorsConfiguation { @Bean public CorsFilter corsFilter(){ // 初始化cors配置对象 CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowCredentials(true); // 允许使用cookie,但是使用cookie是addAllowedOrigin必须是具体的地址,不能是* // configuration.addAllowedOrigin("*"); configuration.addAllowedOrigin("http://manage.leyou.com"); configuration.addAllowedMethod("*"); //允许的请求方式,get,put,post,delete configuration.addAllowedHeader("*");//允许的头信息 //初始化cors的源对象配置 UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();

SpringCloud 2020 版本重大变革

拜拜、爱过 提交于 2020-08-14 10:51:35
从 Spring Cloud 2020.0.0-M1 开始,Spring Cloud 废除了这种英国伦敦地铁站的命名方式,而使用了全新的 "日历化" 版本命名方式。 官宣如下: https://spring.io/blog/2020/04/17/spring-cloud-2020-0-0-m1-released 什么是日历化版本? 英文名称:Calendar Versioning java 框架项目案例:www.1b23.com 日历化版本不是基于任意的数字,而是基于项目的发布日期的版本控制约定,随着时间的推移,版本会越来越好。 这种基于日期的版本命名方式被称为 “日历化版本”(Calendar Versioning), 或者可以简称 CalVer。 详细的介绍参考: https://calver.org/ 我们来看下 Spring Cloud 是如何开始使用日历化版本的。 Spring Cloud 使用了 YYYY.MINOR.MICRO 的命名规则: YYYY :表示 4 位年份; MINOR :代表一个递增的数字,每年以 0 开始递增; MICRO :代表版本号后缀,就和之前使用的 .0 类似于 .RELEASE 一样, .2 类似于 .SR2 。 预发布版本的后缀分隔符也从 . 变更为 - ,如: 2020.0.0-M1 和 2020.0.0-RC2 命名所示。 同时

留言板

放肆的年华 提交于 2020-08-14 09:36:38
一个善于 C-V 编程的 城墟猿 , 正在 学习 Spring Cloud, 拥抱开源。 追求 实用 的 新 事物! 生命 应该 浪费 在 美好的 事物上 ! [ 免费开源软件 ] https://geekswg.lanzous.com/b01hj16vg [ 手机免费实用APP软件 ] https://geekswg.lanzous.com/b01hj1vch 密码:f93x [ PC实用破解软件 ] https://geekswg.lanzous.com/b01hj6pva 密码:3651 music: Take Me To Your Heart Johan Bejerholm编曲 迈克学摇滚 (Michael Learns To Rock) Take me to your heart Take me to your soul Give me your hand before I'm old Show me what love is haven't got a clue Show me that wonders can be true They say nothing lasts forever We're only here today Love is now or never Bring me far away 来源: oschina 链接: https://my

浅谈微服务体系中的分层设计和领域划分

泪湿孤枕 提交于 2020-08-14 09:34:57
K8s已经成为一线大厂分布式平台的标配技术。你是不是还在惆怅怎么掌握它?来这里,大型互联网公司一线工程师亲授,不来虚的,直接上手实战,3天时间带你搭建K8s平台,快速学会K8s,点击下方图片可了解培训详情。 引言 本文获得阿里巴巴《第二届研发效能征文》优秀文章奖,并在阿里第二届能效峰会上展出。 看标题感觉这个东西很理论,比起“高并发、多线程”、“分布式CAP、一致性、Paxos”、“高可用SLA”等具体的干货技术点,软件体系知识显得很“湿”,似乎人人都有自己的认识,但又很少有人能说完整,有一点可以确定的是,如果你未来需要独立设计一个复杂的系统中台,并使之未来能快速应对各种需求变化的话,科学合理的领域划分和边界界定需要我们“处女座级”的坚持下去,这对防止人力失控、减少项目烂尾很有帮助。合理的界定了边界后,即便某个微服务很糟糕,也可以就输入输出以很少的人力投入进行重构,相反的就是牵一发而动全身,加上业务需求频繁而来,很容易烂尾或是达不到如期的效果。 其实很多技术大神都是某一个技术点的好手,但可能在整体软件体系上思考并不多,每个人都有自己的设计方法,大部分容易想到的设计方法处理一般的系统已经够了,后面发生问题慢慢打补丁就行了,当我们面对各种需求变化陷入开发困境的时候我们就该想想了,咱们系统的体系设计上是否出了问题?本文不打算涉及领域建模和设计模式等代码级别的详述

Spring Cloud升级之路

你。 提交于 2020-08-14 09:27:12
针对网关非 Get 请求的重试 在之前的系列里面 Spring Cloud升级之路 - Hoxton - 5. 实现微服务调用重试 ,我们针对 OpenFeign 和 Spring Cloud Gateway 都设置了重试。 对于 OpenFeign: Get请求:任何非200 响应码,任何异常,都会重试。 非 Get 请求:任何IOException(除了SocketTimeOutException,这个是read time out 导致的),还有 redilience 断路器异常,都会重试,其他的都不重试。 对于 Spring Cloud Gateway: Get请求:任何4XX,5XX响应码,任何异常,都会重试。 现在,我们需要实现针对于 Spring Cloud Gateway 的非 Get 请求的任何IOException(除了SocketTimeOutException,这个是read time out 导致的),还有 redilience 断路器异常进行重试,Get因为请求并没有真正发出去。 现有设计 目前在 Spring Cloud Gateway 的 RetryFilterFactory,无法实现针对 Get 和非 Get 对于不同的异常进行不同的重试: org.springframework.cloud.gateway.filter.factory

多云架构下,JAVA微服务技术选型实例解析

。_饼干妹妹 提交于 2020-08-14 07:00:51
【摘要】 本文介绍了基于开源自建和适配云厂商开发框架两种构建多云架构的思路,以及这些思路的优缺点。 微服务生态 微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施。 目前比较成熟的 JAVA 微服务生态包括 servicecomb(华为), spring-cloud (Pivotal), dubbo(阿里), tsf(腾讯)等。gRPC、Thrift 等也用于内部服务之间的通信,但是微服务基础设施比较欠缺。 核心的微服务基础设施包括:注册中心、配置中心、应用网关。此外,分布式事物管理、计划任务、调用链跟踪系统等也是微服务基础设施的组成部分。完整的微服务基础实施还包括开发使能工具,包括接口管理工具、灰度发布管理、代码生成等,这部分主要由云厂商提供,比较少开源方案。 微服务生态的核心是 SDK,而 SDK 的核心是 RPC 框架,这个是不同微服务生态的本质区别。在基础设施方面,不同的微服务生态是可以相互选择的,比如 spring-cloud 生态可以采用 spring-cloud-huawei 接入servicecomb 提供的注册中心 servicecomb-service-center、配置中心 servicecomb-kie,也可以通过 spring-cloud-alibaba 接入阿里的配置中心;servicecomb 也可以通过引入扩展

恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合

时光怂恿深爱的人放手 提交于 2020-08-14 06:33:26
在开始之前,我先卖个关子提一个问题:我们现在有一个Employee员工类。 [@Data](https://my.oschina.net/difrik) @AllArgsConstructor public class Employee { private Integer id; private Integer age; //年龄 private String gender; //性别 private String firstName; private String lastName; } 你知道怎么对一个Employee对象组成的List集合, 先按照性别字段倒序排序,再按照年龄的倒序 进行排序么?如果您不知道4行代码以内的解决方案(其实是1行代码就可以实现,但笔者格式化为4行),我觉得您有必要一步步的看下去。 一、字符串List排序 cities是一个字符串数组。 注意london的首字母是小写的。 List<String> cities = Arrays.asList( "Milan", "london", "San Francisco", "Tokyo", "New Delhi" ); System.out.println(cities); //[Milan, london, San Francisco, Tokyo, New Delhi] cities.sort