Java开发实践
文章平均质量分 66
Java开发实践,走过的路,踩过的坑。
kubernetes-k8s
kubernetes,达人,请亮剑。
展开
-
Java时间差计算小程序
package com.example.demo.controller;import com.example.demo.Demoboot0826Application;import org.springframework.boot.SpringApplication;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util....原创 2021-10-12 14:58:37 · 402 阅读 · 0 评论 -
什么是 CI/CD? (持续集成/持续交付)
在软件开发中经常会提到持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)这几个术语。但它们真正的意思是什么呢?在谈论软件开发时,经常会提到持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)这几个术语。但它们真正的意思是什么呢?在本文中,我将解释这些和相关术语背后的...翻译 2019-04-29 23:25:44 · 31995 阅读 · 3 评论 -
DevOps流程规范2-持续交付流水线、DevOps持续交付平台
接前一篇:DevOps流程规范1-DevOps关键术语2 持续交付流水线、DevOps持续交付平台虽然 DevOps 指的是软件开发人员和运维人员深度协作的应用程序开发模型, 但它被应用到了软件交付的过程中。因此, 它被应用到交付流水线的执行中, 以便可以快速、频繁和可靠地构建、测试、集成和发布软件。为了实现这一点, 将使用持续集成和持续交付或持续部署等过程。这些流程由支持交付流程阶段和活动的相关软件工具栈实现。交付流水线工具链是基于常见行业模式和环境要求的最佳工具集合,以支持使用C#,Java.原创 2021-08-19 17:19:06 · 1380 阅读 · 1 评论 -
DevOps流程规范1-DevOps关键术语
1-DevOps关键术语DevOps代表了应用程序开发的新模式,需要软件开发人员和IT运维之间的深入协作。这种深入的合作表明了一种文化,其重点是定义软件的时候需要考虑可运维性,并且自动化软件交付过程,从而快速,频繁,可靠地构建,测试和发布软件。1.1 定义以下是与DevOps相关的常用(但在行业中定义不同)的一些基本定义:表格 1‑1 DevOps术语定义术语 定义 DevOps 从概念上讲,DevOps是从一开始就通过以最有效和可持续的方式向客户提供想法(功能...原创 2021-08-19 11:41:08 · 649 阅读 · 0 评论 -
设计模式-state模式
State模式状态模式根据对象的状态不同,将具有不同的行为使用场景当一个对象的行为取决于他的状态,并且它必须在运行时刻根据状态改变他的行为,或者一个操作中还有庞大的多分支的条件语句,并且这些分支依赖于该对象的状态时,就需要适应状态模式。优点状态模式使用代码中复杂而庸长的逻辑判断语句问题得到了解决,而且状态角色将具体的状态和他对应的行为封装了起来,这使得增加一种新的状态显得十分简单。缺点使用状态模式时,每个状态对应一个具体的状态类,使结构分散,逻辑不太清楚,阅读代码时...原创 2021-08-18 15:59:08 · 113 阅读 · 0 评论 -
设计模式-工厂方法模式&策略模式
设计模式学习总结———工厂方法模式&策略模式Pattern 1:Factory Method工厂方法把直接调用构造器的对象生成方法调整成在工厂对象上调用创建方法,程序从跟目标对象通过工厂类和工厂方法进行解耦。调用工厂类的工厂方法即可以获得我们需要的对象,从而让我们的程序与接口的实现分离,这样接口的任何实现子类都相互替换,即符合里氏替换原则,增加程序的灵活性。Pattern 2:Strategy策略模式主要是针对算法中可变的部分进行灵活替换,当算法处理细节有变化的时候...原创 2021-08-18 15:59:21 · 255 阅读 · 0 评论 -
设计模式-Facade模式
门面(Facade)模式的理解与应用概念门面模式,指子系统的外部与其内部的通信必需通过一个统一的门面(Facade)对象进行,示意图如下:应用场景为一个复杂子系统提供一个简单接口子系统常常因为不断演变而变得异常复杂,使用门面模式,对于客户端可以提供一个简单的接口,便于客户的调用。保持子系统的独立性使用Façade,可以分离子系统和客户端,保持子系统的独立性。层次化结构在构建层次化系统架构时,可以使用Façade模式定义系统中每一层的入口,限定层之间仅能通...原创 2021-08-18 15:59:35 · 264 阅读 · 0 评论 -
设计模式-适配器模式
适配器模式概述适配器模式(adpter):将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的的哪些类可以一起工作。更加通俗地讲就是写一个新的类,将旧的类包装起来,这个新的类通过旧的类的方法实现客户所要求的接口的功能。因此适配器模式又叫包装。在适配器模式中有几个四个关键的概念,这四个概念清楚地描述了适配器模式的总体结构,他们分别是: 目标(Target):基于接口编程是使用适配器模式前提,程序在完成应用逻辑时使用到的接口(适配器要实现的接口)...原创 2021-08-17 15:34:40 · 181 阅读 · 0 评论 -
设计模式-Proxy设计模式
Proxy设计模式什么是代理模式代理模式给某一个对象提供一个代理对象,并由代理对旬控制对源对象的引用。其意图在于为其他对象提供一种代理以控制对这个对象的访问。对一个对象进行访问控制的原因只有一个就是为了对这个对象的创建和初始化进行控制,在我们确实需要对它进行初始化的时候才创建它。例如,考虑一个论坛系统的登陆操作,登陆的用户可能是注册的用户、也可能非注册用户,注册用户又可能是普通用户或者是管理员,因此在登陆时需要做一些额外的权限控制,对于登陆时不直接访问论坛对象,我们引入论坛Proxy对...原创 2021-08-17 15:28:52 · 146 阅读 · 0 评论 -
设计模式-抽象工厂模式
抽象工厂模式学习随想简单工厂仅仅是把实例化具体对象的代码封装成单独的函数中,可以算是一个最简单的封装变化的方式。工厂方法定义一个创建对象的接口,但是具体的对象实例化是由工厂子类来决定。抽象工厂将产品对象的创建延迟到它的具体工厂的子类。但如果没有应对“多系列对象创建”的需求变化,则没有必要使用抽象工厂模式,这时候使用简单的静态工厂完全可以。l 系列对象指的是这些对象之间有相互依赖、或作用的关系,例如本例食物中对米饭蔬菜和肉类的依赖。l...原创 2021-08-16 15:48:10 · 94 阅读 · 0 评论 -
设计模式-builder模式
BUILDER模式Build模式的组成:抽象建造者:规范产品对象的各个子对象的建造流程。具体的建造者:按照抽象建造者的规范,创建各个子对象。并最终形成产品对象。产品角色:具体建造者最终创建的复杂对象。包含了众多的子对象。控制者:控制了产品的子对象的组装流程。但并没有实现流程的具体操作,具体的操作通过建造者来完成。仅仅控制流程。2. 解决问题:当我们创建的对象很复杂的时候(由很多个其他的对象组成),我们要把复杂对象的创建过程和对象的表示分离开来。在展示的时候,展示者...原创 2021-08-16 15:46:39 · 245 阅读 · 0 评论 -
设计模式-装饰模式
placeholder 0512placeholder 0512placeholder 0512placeholder 0512原创 2019-05-12 21:19:18 · 135 阅读 · 0 评论 -
southern power grid, are you ok?
if you can dream,dream more.原创 2019-05-16 21:47:50 · 685 阅读 · 0 评论 -
设计模式-享元模式
placeholder @ 0526placeholder @ 0526placeholder @ 0526placeholder @ 0526placeholder @ 0526placeholder @ 0526原创 2019-05-26 22:11:39 · 78 阅读 · 0 评论 -
浅谈 OKR 与KPI
2. 浅谈 OKR 与KPI相信很多人第一次听到 OKR 的时候都会在内心呐喊∶这不就是换汤不换药的 KPI 吗!但其实 OKR 和 KPI是截然不同的两个概念,二者在本质上有着明显差异。什么是 KPI?KPI 是 Key Performance Indicator 的缩写,中文名称是「关键绩效指标」,即一系列衡量工作成效的重要指标。管理学家杜拉克曾说,KPI 是引导组织发展方向的【仪表板」。KPI 必须是客观的、可衡量的,以下是一些常见的 KPI∶医疗保健行业∶ 患者等待时间、平均治疗.原创 2021-08-12 13:49:55 · 361 阅读 · 0 评论 -
敏捷迭代管理 —迭代启动会前准备
1 敏捷迭代管理 —迭代启动会前准备迭代启动会前准备也是直接决定敏捷计划是否合理,因此需要重点关注每个角色的需求精读质量;目的1、保证卡片按完整功能拆分并粒度足够小;2、保证开发成员完成需求精读3、保证卡片工作量相对准确的预估;时间&频次1、需求讲解会结束后的 4H 内;2、迭代启动会前;议程1、根据需求和发布安排确定开发卡片的最终优先级;2、团队管理者/SM 进行卡片预分配和经验预估点, 预估当期迭代的任务饱和度;3、团队管理者/SM 预估团队任务分配是否均.原创 2021-08-12 13:48:45 · 377 阅读 · 0 评论 -
带你进入 OKR(一)
1. 带你进入 OKR(一)随着很多互联网高新技术企业的发展,”OKR”这个词也逐渐活跃在观众的视线中。OKR 发源于英特尔,兴盛于 Google,随着字节跳动,百度,阿里等互联网新贵的迅速崛起,引起了越来越多创新企业的关注。然而也还是有很多企业并不知道 OKR 是什么? 而且也有些已经实施了 OKR 管理法的也不能完全理解 OKR 的理念,而且将 OKR 与绩效考核联系起来,完全发挥不了 OKR 的真正作用。OKR是什么?OKR=Objectives (目标)+Key Results .原创 2021-08-12 13:46:03 · 249 阅读 · 0 评论 -
K8S 组件参数及常见问题处理
1. 问题说明 针对K8S 1.13 后的版本,提供 K8S 通用的优化要点。常见的使用经验、问题处理分享。 针对 K8S 组件,一些典型参数以及常见的一些问题和处理方法。 2. 问题处理先看一下Kubernetes主要架构组件图:2.1 etcdKubernetes 中的大部分概念如 Pod、ReplicaSet、Deployment、Service、Node 等都可以被 看作一种资源对象,几乎所有资源对象都可以通过 Kubernetes 提供的 kube...原创 2021-06-17 10:11:13 · 1391 阅读 · 0 评论 -
Redis 高负载下的中断优化
https://tech.meituan.com/2018/03/16/redis-high-concurrency-optimization.html背景2017年年初以来,随着Redis产品的用户量越来越大,接入服务越来越多,再加上美团点评Memcache和Redis两套缓存融合,Redis服务端的总体请求量从年初最开始日访问量百亿次级别上涨到高峰时段的万亿次级别,给运维和架构团队...转载 2019-05-04 17:29:05 · 636 阅读 · 0 评论 -
美团针对Redis Rehash机制的探索和实践
美团技术团队https://mp.weixin.qq.com/s/ufoLJiXE0wU4Bc7ZbE9cDQ背景Squirrel(松鼠)是美团技术团队基于Redis Cluster打造的缓存系统。经过不断的迭代研发,目前已形成一整套自动化运维体系,涵盖一键运维集群、细粒度的监控、支持自动扩缩容以及热点Key监控等完整的解决方案。同时服务端通过Docker进行部署,最大程度的提高运...转载 2019-05-04 17:24:42 · 197 阅读 · 0 评论 -
Linux IO和Zero Copy总结
前言最近工作中一个系统要基于cannal订阅binlog数据,然后本地消费,但是发现IO居高不下,通常情况达到150%以上,顺着这个问题阅读了canal中关于网络数据处理的源码,发现性能并不是好,后面不得不切换到改用kafka消费,而kafka作为一个高性能消息处理中间件能够实现海量消息处理的一个因素是因为Zero Copy,借此机会重新总结了下Linux下IO的一些知识。几种IO介绍...转载 2019-05-04 17:01:32 · 480 阅读 · 0 评论 -
select、poll、epoll之间的区别
(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用...转载 2019-05-04 17:00:13 · 212 阅读 · 0 评论 -
IDEA查看已安装的plugin插件
有时, 或许需要, 或许工作变更, 需要查看idea上已安装的plugin插件列表:方法如下:File -> Settings -> Plugins -> Show过滤下拉选择'Custom':清单如下:Alibaba Java Code Guidelines Background Image Plus FindBugs Free MyBatis pl...原创 2019-05-02 21:51:55 · 30631 阅读 · 0 评论 -
RocketMQ的客户端连接数调查
RocketMQ版本:3.4.6==问题现象==RocketMQ集群的某个topic,在一部分节点上消费有“断层”,这部分数据一致没办法消费。==调查过程==一顿操作猛如虎的调查之后发现,该Topic的消费者的客户端连接数不正确。程序中设置的客户端数明明是4个,但是Web页面上显示的是5个。OK,如何才能知道这些客户端程序到底是哪些呢?...转载 2019-05-02 20:58:34 · 1489 阅读 · 0 评论 -
Quorum (分布式系统)
Quorum (分布式系统)Quorum机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。基于Quorum投票的冗余控制算法在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝。但是同一时刻一个数据对象的多份拷贝只能用于读或者用于写。该算法可以保证同一份数据对象的多份拷贝不会被超过两个访问对象读写。...转载 2019-05-02 19:07:52 · 732 阅读 · 0 评论 -
MySQL设置慢查询日志阈值
1 )首先查询一下 long_query_time 的值 。mysql> show variables like 'long%';+-----------------+-------+| Variable_name | Value |+-----------------+-------+| long_query_time | 10 |+-----------------+---...原创 2019-05-01 20:46:25 · 3513 阅读 · 0 评论 -
为什么PageHelper超过最大页数后还会返回数据
springboot应用, 加入 PageHelperpom.xml:<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>...原创 2019-04-27 00:38:05 · 555 阅读 · 0 评论 -
Sharding-JDBC的groovy动态生成导致的full gc问题
问题:sharding.jdbc.config.sharding.tables.t_order_item.actual-data-nodes=ds_master_$->{0..1}.t_order_item_0$->{0..9},ds_master_$->{0..1}.t_order_item_$->{10..99}这里的表达式, 使用groovy进行动态编译,生成J...原创 2019-04-26 23:15:02 · 1602 阅读 · 3 评论 -
java连接Access数据库的两种代码
import java.sql.*;public class dbaccess{ public static void main(String args[]) throws Exception{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dburl ="jdbc:odbc:driver={Microsoft Access Dri原创 2006-11-30 12:48:00 · 2694 阅读 · 1 评论 -
Tomcat配置技巧Top 10
500 是Server Error 400 是Clinet Error 300 Route change 200 OK Tomcat配置技巧Top 10 2004-01-09 17:19:25 作者:Jason Brittain & Ian F. Darwin 出处:http://www.orielly.com 译者:陈光 2003-12-31 编者按:现在开发Java Web应用,建原创 2006-11-30 18:13:00 · 895 阅读 · 0 评论 -
跟我学XSL(一) [Z]
跟我学XSL(一) 作者:禹希初 时间: 2004-04-09 文档类型:转载 来自:CSDN 浏览统计 total:187648 | year:65982 | Quarter:16221 | Month:1692 | Week:1187 | today:300 第 1 页 第一原创 2006-12-06 17:50:00 · 827 阅读 · 0 评论 -
Tomcat服务器配置之Context容器
Tomcat服务器配置 Context容器 引言 Context元原创 2006-12-16 15:13:00 · 1800 阅读 · 0 评论 -
JAVA的JAR文件包及jar命令详解
常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件。通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像.chm 文档一样双击运行了;而另一种是使用 JET 来进行 编译。但是 JET 是要用钱买的,而且据说 JET 也不是能把所有的 Java 程序都编译成执行文件,性能也要打些折扣。所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况原创 2006-12-22 10:20:00 · 1400 阅读 · 0 评论 -
jar 命令运用规则
我的主类为frametest.FrameTest.java建立目录结构:test -frametest -FrameTest.class在test目录下建立文件manifest.mf(也可以是其它文件名)--称为清单文件内容如下:Manifest-Version: 1.0Main-Class: frametest.FrameTestClass-Path: log4j.jar注意每个冒号(:)后都原创 2006-12-22 10:23:00 · 915 阅读 · 0 评论 -
Java Servlet基本方法介绍
CSDN - 文档中心 - Java 阅读:3661 评论: 0 参与评论转载 2007-03-09 11:49:00 · 816 阅读 · 0 评论 -
java 面试中的一道编写一个截取字符串的函数
package com.heping.xx;//7、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,//输出为按字节截取的字符串。 但是要保证汉字不被截半个,//如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,//应该输出为"我ABC"而不是"我ABC+汉的半个"。import java.io.BufferedReader;import java.io.IOE原创 2007-03-09 16:01:00 · 2078 阅读 · 2 评论