Spring Cloud

一个程序员被打断的项目管理培训

我的未来我决定 提交于 2020-10-03 10:00:17
9月30日的中午12点30分,本来还在项目管理的课堂学习。得知本月还有10多笔应收业务抛财务系统有问题。向公司领导请假后,我和一名技术人员赶回了公司。这个系统在什么样的背景下诞生的?建设中面临了哪些困难? 从业务、管理角度来看,这个系统建设难度比较大。系统要支持6个角色,pc、app、小程序等几乎全终端覆盖。系统本身也是一个复杂的业务系统,除了与内部多个上下游业务系统对接以外,还要与三方开放的数据平台及监管部门系统对接。公司目前信息化要求也比较高,业务系统要与税务系统和财务系统对接。所以,从业务和管理角度来看,系统建设难度可想而知。 从项目建设角度,开发、系统管理、项目管理都有一定难度。公司选择了把项目外包给一家公司,作为内部技术团队的我们在中后期逐步介入项目。虽这家公司在大行业有一定经验,但在我们细分领域的经验不足。技术选择了springcloud全家桶,linux部署。在系统开发、日常管理上相比传统技术有了更高的要求。前后端完全分离,而公司开发资源又是矩阵式的管理方式,在开发计划上面需耗费不少精力。因此,项目建设难度可见一斑。 从公司高层角度来看,高层领导对贯彻先进管理思想期盼已久。我们所做的是一个传统的业务领域,利润率极低。整个社会都在期盼着通过技术创新或者模式创新来增加竞争力、提高盈利水平。而传统行业变革是既需要大环境的孵化,也需要一个长期尝试、渗透感染的过程

springcloud zuul 报 500 代码

ぃ、小莉子 提交于 2020-10-03 08:54:39
经过仔细检查,全部配置映射都没问题,springboot-admin 监控中心所有服务状态全部显示绿色正常 但就是通过 zuul 访问服务提示 500错误 这个情况,一般是请求超时所致 调整请求超时时间即可 zuul服务本地报错提示:com.netflix.zuul.exception.ZuulException: Forwarding error 原始配置示例: hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 12000 ribbon: ReadTimeout: 6000 ConnectTimeout: 6000 zuul: host: socket-timeout-millis: 6000 connect-timeout-millis: 6000 from www.1b23.com 全部改成: hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 12000 ribbon: ReadTimeout: 12000 ConnectTimeout: 12000 eureka: enabled: true zuul: host: socket-timeout-millis

SpringCloud项目接入阿里云ACM配置中心

不羁岁月 提交于 2020-10-03 04:57:56
一. 在接入之前我们首先要明白什么是ACM? 应用配置管理ACM(Application Configuration Management)是一款在分布式架构环境中对应用配置进行集中管理和推送的产品。也就是我们所说的配置中心,我们的项目接入后ACM能帮助您集中管理所有应用环境中的配置,降低分布式系统中管理配置的成本,并降低因错误的配置变更造成可用性下降甚至发生故障的风险。 具体介绍见官方网站 阿里云ACM配置中心 二. 那么如何正确使用呢?我们直接步入主题 1.首先你需要开通ACM服务,然后进行相应的配置具体操作请见 ACM产品主页 2.正确在pom文件中导入依赖 < dependency > < ! -- 阿里云ACM配置依赖 -- > < groupId > org . springframework . cloud < / groupId > < artifactId > spring - cloud - starter - alibaba - nacos - config < / artifactId > < version > 0.9 .0 . RELEASE < / version > < / dependency > 3.我们的配置文件中只需要引入ACM相关配置即可 配置到ACM配置中心 spring : cloud : nacos : config :

超值干货 | 值得收藏:精选BATJ面试突击500题详解:JVM篇!

笑着哭i 提交于 2020-10-02 15:24:30
JVM Java内存区域 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? HotSpot虚拟机对象探秘 对象的创建 为对象分配内存 处理并发安全问题 对象的访问定位 句柄访问 直接指针 内存溢出异常 Java会存在内存泄漏吗?请简单描述 垃圾收集器 简述Java垃圾回收机制 GC是什么?为什么要GC 垃圾回收的优点和原理。并考虑2种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? Java 中都有哪些引用类型? 怎么判断对象是否可以被回收? 在Java中,对象什么时候可以被垃圾回收 JVM中的永久代中会发生垃圾回收吗 说一下 JVM 有哪些垃圾回收算法? 标记-清除算法 复制算法 标记-整理算法 分代收集算法 说一下 JVM 有哪些垃圾回收器? 详细介绍一下 CMS 垃圾回收器? 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别? 简述分代垃圾回收器是怎么工作的? 内存分配策略 简述java内存分配与回收策率以及Minor GC和Major GC 对象优先在 Eden 区分配 大对象直接进入老年代 长期存活对象将进入老年代 虚拟机类加载机制 简述java类加载机制? 描述一下JVM加载Class文件的原理机制 什么是类加载器

《SpringCloud 应用在 Kubernetes 上的最佳实践 —— 线上发布(可回滚)》

吃可爱长大的小学妹 提交于 2020-10-02 15:00:09
简介: 本篇是《SpringCloud 应用在 Kubernetes 上的最佳实践》系列文章的第七篇,主要介绍了新功能上线时,如何尽快减少对线上用户的影响?发布系统需要提供回滚到前一个或前几个版本的能力,达到快速恢复线上业务的目的。 通常一次应用的线上发布就表示了一次新功能的上线。在上线过程中,可能发生一些非预期的情况,如新版本软件有bug,或者功能不达预期,就会影响了线上客户的使用。 为了尽快减少对线上用户的影响,发布系统需要提供回滚到前一个或前几个版本的能力。达到快速恢复线上业务的目的。 从应用的部署变更层次来看,可以分为以下三层: 所以对应了以下的回滚场景: 回滚应用内的配置,适用于由于应用配置变更导致的问题。此时如果应用能够实现动态的配置加载,通过回滚配置就能实现业务恢复的目的。否则需要重启应用 回滚应用代码的版本,适用于代码修改导致的问题。此时需要回滚代码的版本(镜像),重启应用。 回滚应用的工作负载与运维配置(基础设施层)。 应用内配置回滚 应用内的配置通常与应用系统需要或业务逻辑配置有关,如配置数据库的连接信息,业务规则配置等,配置的变更也很容易造成线上系统的问题,一般的做法是通过configmap或properties配置文件来实现,这种情况下很难做到动态推送和回滚的能力,因为回滚需要保存不同版本的配置。 通过 分布配置管理(ACM) (EDAS默认支持

Spring Cloud Data Flow用Shell来操作,方便建立CICD

岁酱吖の 提交于 2020-10-02 12:55:07
1 前言 欢迎访问 南瓜慢说 www.pkslow.com 获取更多精彩文章! 之前我们用两篇文章讲解了 Spring Cloud Data Flow ,例子都是用 UI 操作的,但我们在 Linux 系统上经常是无法提供界面来操作,集成在 Jenkins 上也无法使用 UI 。好在官方提供了 Data Flow Shell 工具,可以在命令行模式下进行操作,非常方便。 相关文章可参考: Spring Cloud Data Flow初体验,以Local模式运行 把Spring Cloud Data Flow部署在Kubernetes上,再跑个任务试试 Spring Cloud Data Flow Server 提供了可操作的 REST API ,所以这个 Shell 工具的本质还是通过调用 REST API 来交互的。 2 常用操作 2.1 启动 首先要确保我们已经安装有 Java 环境和下载了可执行的 jar 包: spring-cloud-dataflow-shell-2.5.3.RELEASE.jar 然后启动如下: $ java -jar spring-cloud-dataflow-shell-2.5.3.RELEASE.jar 默认是连接了 http://localhost:9393 的 Server ,可以通过 --dataflow.uri=地址 来指定

OAuth2 Token 一定要放在请求头中吗?

╄→尐↘猪︶ㄣ 提交于 2020-10-02 12:21:13
Token 一定要放在请求头中吗? 答案肯定是否定的,本文将从源码的角度来分享一下 spring security oauth2 的解析过程,及其扩展点的应用场景。 Token 解析过程说明 当我们使用 spring security oauth2 时, 一般情况下需要把认证中心申请的 token 放在请求头中请求目标接口,如下图 ① spring security oauth2 通过拦截器获取此 token 完成令牌到当前用户信息(UserDetails)的转换。 OAuth2AuthenticationProcessingFilter.doFilter public class OAuth2AuthenticationProcessingFilter{ public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { try { // 1. 根据用户请求解析令牌,组装预登陆对象 Authentication authentication = tokenExtractor.extract(request); if (authentication == null) { // 若是预登陆状态为空,把无状态登录清空

springcloud开发的电子商务小程序平台

ε祈祈猫儿з 提交于 2020-10-02 11:55:59
核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、Rabbit MQ、微服务、分布式、电子商务 核心思想:产品微服务、模块化、原子化、持续集成、分布式、集群部署 开发模式:代码生成工具、驱动式开发模式、提高开发效率 微信扫码可以体验~ 来源: oschina 链接: https://my.oschina.net/u/3613013/blog/4298239

Spring Boot Admin:微服务应用监控

给你一囗甜甜゛ 提交于 2020-10-02 06:57:00
Spring Boot Admin:微服务应用监控 SpringBoot实战电商项目mall(20k+star)地址: github.com/macrozheng/… 摘要 Spring Boot Admin 可以对SpringBoot应用的各项指标进行监控,可以作为微服务架构中的监控中心来使用,本文将对其用法进行详细介绍。 Spring Boot Admin 简介 SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标,Spring Boot Admin通过这些指标来监控SpringBoot应用,然后通过图形化界面呈现出来。Spring Boot Admin不仅可以监控单体应用,还可以和Spring Cloud的注册中心相结合来监控微服务应用。 Spring Boot Admin 可以提供应用的以下监控信息: 监控应用运行过程中的概览信息; 度量指标信息,比如JVM、Tomcat及进程信息; 环境变量信息,比如系统属性、系统环境变量以及应用配置信息; 查看所有创建的Bean信息; 查看应用中的所有配置信息; 查看应用运行日志信息; 查看JVM信息; 查看可以访问的Web端点; 查看HTTP跟踪信息。 创建admin-server模块 这里我们创建一个admin-server模块来作为监控中心演示其功能。 在pom.xml中添加相关依赖: <

Markdown基本语法介绍

爱⌒轻易说出口 提交于 2020-10-02 06:01:22
一、Markdown的简介 Markdown是一种轻量级的标记语言 理念:Markdown致力于让创作者或者阅读文档变得更加的容易 hyper text Markup language(HTML)超文本标记语言 二、标题 1、Markdown的标题 语法:#(一级标题)##(二级标题)###(三级标题)… 代码: # 这是一级标题 ## 这是二级标题 效果: 这是一级标题 这是二级标题 这是三级标题 这是四级标题 快捷键: Ctrl+数字1-5可以快速的将选中的文字调成对应级别的标题 Ctrl+加好/减号对标题级别进行加减 三、段落 段落 语法:直接进行文字的编辑,如需新建下一段路可直接换行或者在段落的末尾敲空格回车 代码: 这是一个段落 这是一个段落 效果: 这是一个段落 这是一个段落 2.字体 语法: 粗体用一对双星号包裹 这是粗体 * * 这是粗体 * * 删除线 用一对双飘号进行包裹 这是删除线 ~ ~ 这是删除线 ~ ~ 下划线,用一对u标签进行包裹 这是下划线 ~~~java <u>这是下划线</u> ~~~ 斜体 用一对单星号包裹 这是斜体 ~~~java *这是斜体* ~~~ 快捷键: 加粗:Ctrl+B 斜体:ctrl+I 下划线:Ctrl+U 分割线 语法: 分割线:三个减号回车 代码: -- - 回车 效果: 脚注 说明: 脚注是对文本进行补充说明的 代码: