- Proxmox VE退出集群模式
传说中的暗暗
LinuxPVEProxmox
有2台PVE集群,一台突然当机了,然后一时半会也弄不好,这时候操作虚拟机重启的话会导致联系不到集群服务器导致虚拟机起不来,快速解决方法就是将集群服务停止。通过SSH连上PVE主机,直接输入下面的命令就可以完全退出集群服务停止cluster服务systemctlstoppve-cluster.servicesystemctlstopcorosync.service设置本地模式pmxcfs-l删除co
- 分布式一致性协议
growdu
分布式一致性协议当前业界主流的分布式一致性协议主要有如下几种:totem协议(简单即有效)totem协议,全称是TheTotemSingle-RingOrderingandMembershipProtocol,是一个基于令牌环的分布式一致性算法。corosync基于totem协议实现。paxos协议(二阶段提交)raft协议(二阶段提交,基于paxos协议完善和改进)Raft协议就是Paxos的衍
- 部署Openstack HA
叮咚网工
openstack云计算linux服务器openstacklinux运维服务器虚拟化分布式
一、技术介绍Heartbeat与Corosync是流行的MessagingLayer(集群信息层),Pacemaker是最流行的CRM(集群资源管理器),同时Corosync+Pacemaker是最流行的高可用集群的套件,使用DRBD+Pacemaker+Corosync部署OpenStackHA。二、安装前准备1、常规初始化操作两个个节点都需要执行hostnamectlset-hostnamec
- 【PostgreSQL高可用之Repmgr和Patroni部分场景对比】
小怪兽ysl
PostgreSQL数据库服务器postgresql
PostgreSQL数据库有着各种各样的高可用方案,绝大多数,都是基于流复制机制实现的,常见的例如Patroni+DCS,Pacemaker+Corosync,Repmgr,keepalived,pg_auto_failover,PGpool等等,其中使用较多的应该是Patroni和Repmgr两种,下文针对PostgreSQ的两种高可用方案Repmgr和Patroni进行部分场景对比。一、Rep
- Nginx + keepalived 实现双机热备
无与伦比jia
linuxNginx服务器NginxKeepalived
Nginx+keepalivedkeepalived简介Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。VRRP协议VRRP全称VirtualRouterRedund
- Arch Linux源码安装corosync成功
乡路
Linux编译
ArchLinux源码安装corosync成功[xy@archlinux~]$uname-rp5.13.5-arch1-1unknown[xy@archlinux~]$cat/etc/os-releaseNAME=“ArchLinux”直接安装找不到[xy@archlinux~]$sudopacman-Spacemakererror:targetnotfound:pacemakerarch网站也搜
- corosync+pacemaker+nfs配置简单高可用
吃面包的刺猬
linux服务器运维
环境准备:每个节点提供20G共享存储web1192.168.134.176node7web2192.168.134.177node8一、准备web环境(两台web测试机都要准备)yuminstallhttpd-yecho"webtestpage,ipis`hostname-I`.">/var/www/html/index.htmlsystemctlstarthttpd二、做两个节点免密登录,和配置
- FreeSwitch 使用keepalived进行主备切换高可用部署
xiedy001
freeswitch服务器运维
FreeSWITCH的高可用部署方式有两种:主备切换和负载均衡,官方文档介绍的主备切换部署是采用Corosync&Pacemaker,负载均衡采用前置opensips。但对使用keepalived进行主备切换的高可用方式没有介绍,同时网上对该种部署方式也没有介绍。本人对Corosync&Pacemaker不熟悉,目前在职的公司web应用大部分采用keepalived+haproxy,所以对keep
- 【MogDB/openGauss与PG的repmgr对比】
小怪兽ysl
openGauss数据库运维linux
提到PG的repmgr,大家可能并不陌生,他是现在PG比较流行的一套开源工具,用于管理PostgreSQL服务器集群中的复制管理和故障转移,也就是相当于一个集群管理+HA工具。当前PG的高可用方案,大致有keepalived、pgpool、repmgr、pacemaker+corosync、etcd+patroni等等。其中etcd+patroni和repmgr是目前用的较多的高可用。patron
- corosync-qdevice中ffsplit与lsm算法的区别
growdu_real
corosync集群服务器linuxcorosync集群
corosync-qdevice中ffsplit与lsm算法的区别corosync-qdevice目前支持两种算法来设置corosync-qnetd如何为给定的节点或者分区提供投票的行为。ffsplit五五平分算法。这仅对具有偶数个节点的集群有意义。它只为活动节点数最多的分区提供一票。如果有两个完全相同的分区,它将投票给得分较高的分区。分数计算规则为:连接节点数+启发式通过的连接节点数-启发式失败
- corosync-qnetd投票机制
growdu_real
corosync集群服务器linux集群corosync
corosync-qnetd投票机制corosync-qnetd是corosync的第三方仲裁机制,当corosync出现网络分区时,集群内部无法选择出quorate一方时,就会借助corosync-qnetd来进行辅助投票。corosync-qnetd作为服务端,会根据各分区连接到qnetd的客户端数目,完成启发式算法的客户端数目等信息来对各分区节点进行投票corosync-qdevice作为客
- 一台主机运行多个corosync代码分析
growdu_real
corosync数据库大数据集群corosync
一台主机运行多个corosync代码分析corosync当前设计为一台机器只能运行一个corosyc实例,无法部署多个,是由如下两个部分决定的:锁文件ipc创建锁文件corosync从设计上就只运行一台机器运行一个corosync节点,它通过每次运行将pid写入固定的pid文件来进行控制,pid的文件路径在代码中写死,无法配置。staticconstchar*corosync_lock_file=
- PVE 集群部署-节点删除
江小白go
linux运维服务器
如题:pve1,pve2,pve3组集群,需要将pve2删除一.前置准备1.确保pve2的虚拟机已经全部迁移到其他节点2.确保pve2的数据已经备份过,可以全部删除二.pve2节点自我删除systemctlstoppve-cluster.servicesystemctlstopcorosync.servicepmxcfs-l#强制设置为本地模式cd/etc/pve/rmcorosync.confr
- proxmox 退出集群
skydieu
1、在需要退出集群的node上停止pve-cluster服务systemctlstoppve-cluster.servicesystemctlstopcorosync.service2、node上集群系统文件设置未本地模式pmxcfs-l3、删除corosync配置文件rm/etc/pve/corosync.confrm-rf/etc/corosync/*4、重新启动集群文件系统服务killall
- 华为鲲鹏+uos ha + lvs安装
龙飞1107
所有ha机器执行:aptinstalllibdbi-perllibdbd-mysql-perlcorosyncpcspacemakercrmsh修改pcs端口(我用的默认的2224):vim/etc/default/pcsdsystemctlrestartpcsdpam_tally2--userhacluster--resetls/etc/corosync/corosync.confcat/etc
- 基于DRBD实现存储高可用配置
Macarron
linux网络运维高可用
基于DRBD+Pacemaker+Corosync的存储主备配置1.功能介绍1.1DRBDDRBD是一种基于软件、基于网络的块复制存储解决方案,主要用于对服务器之间的磁盘、分区、逻辑卷等进行数据镜像。当用户将数据写入本地磁盘时,数据也会被发送到网络中另一台主机的磁盘上,从而实现本地主机(主节点)与远程主机(备节点)之间数据的实时同步。DRBD是一种基于linux内核模块实现的快级别的同步复制技术,
- 搭建PostgreSQL高可用集群(基于Pacemaker+Corosync)
mengshicheng1992
MySQL&PostgreSQLpostgresql
搭建PostgreSQL高可用集群(基于Pacemaker+Corosync)此文以PostgreSQL10版本为例!如未指定,下述命令在所有节点执行!系统资源及组件规划节点名称系统名称CPU/内存网卡磁盘IP地址OS节点角色PGSQL1pgsql12C/4Gens33128G192.168.0.11CentOS7PostgreSQL、Pacemaker、CorosyncPGSQL2pgsql22
- corosync-qdevice详解
growdu_real
服务器数据库网络
corosync-qdevice详解corosync-qdevice是corosync集群工具的一个组件,用于提供第三方仲裁服务。corosync-qdevice需与corosync-qnetd和corosync一起使用,无法单独运行。允许corosync在偶数节点分裂为两个相似的部分后仲裁选择出一方继续提供服务允许corosync在运行到剩下最后一个节点仍能够提供服务corosync-qdevi
- ProxmoxVE PVE集群崩溃初步恢复,移除故障节点,退出集群
运维猿Winter
1、在待隔离节点上停止pve-cluster服务systemctlstoppve-cluster.servicesystemctlstopcorosync.service2、上一步执行成功后,执行将待隔离节点的集群文件系统设置为本地模式的命令pmxcfs-l3、上一步执行成功后,执行删除corosync配置文件的命令rm/etc/pve/corosync.confrm-rf/etc/corosyn
- 第十五周作业
卫清华
1、Nginx+Keepalived实现站点高可用1.Keepalived介绍Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。1.1VRRP协议VRRP全称Virtu
- Pacemaker技术总结
doverxu
Pacemaker总结目录Openstack&PacemakerPacemaker内部结构Corosync/totem协议Pacemaker主要特性资源代理标准资源约束高级资源类型服务异常监控虚拟IP功能负载均衡功能Openstack&PacemakerOpenstack的众多组件服务既可以集成到单个节点上运行,也可以在集群中分布式运行。但是,要实现承载业务系统的高可用集群,Openstack服务
- haproxy高可用集群+pacemaker+fence (nginx源码编译)
dezasseis
一、Pacemaker简介Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。二、pacemaker结构以运作方式01_pacemaker内部结构Pacemaker作为一个独立的集群资源管理器项目,其本身由多个内部组件构成,这些内部组件
- [译3] SheepDog 集群管理后端和双NIC
AustinPup
原文地址SheepDog使用一个集群管理后端来管理成员,向成员节点广播消息。目前,sheepdog能够使用LocalDirver,corosync(默认),ZooKeeper和Accord。Corosync不建议用于商用产品,因为同步功能容易受到高负载包丢失的影响。为了可靠运行,强烈建议使用zookeeper。LocalDriver该驱动使用UnixIPC来管理单个box上的成员,这里,我们开启多
- [Sheepdog] 入门指南
AustinPup
入门指南要求多台X86-64机器Linux内核>=2.6.27glibc>=2.9Zookeeper或者corosyncQEMU>=0.13安装资源包安装配置集群用例设置Sheepdog启动sheepdog守护进程格式化集群检查集群状态创建一个空的VDI创建一个5G大小的虚拟镜像,命名为AlicedogvdicreateAlice5G你也可以讲一个现存的KVM镜像转换成Sheepdog的qemu-
- Haproxy -- 实现负载均衡(七层)
阳止甘十
企业实战linux运维负载均衡
文章目录一、Haproxy的搭建部署二、Haproxy的访问控制1.控制在访问不同后端时的输出内容:2.设定调度器为备机3.访问黑白名单设定访问测试页:访问控制相应页面4.访问重定向发生错误时重定向:直接重定向:5.访问上传时的读写分离三、通过pacemaker、corosync、haproxy实现高可用一、Haproxy的搭建部署7层负载平衡:7层负载平衡是更复杂的负载均衡网络流量的方法是使用第
- Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)
Leshami
-----MSSQL高可用性
SQLserverAlwaysOn技术依赖于WindowsWSFC功能,即故障转移群集功能。无论是Liunx下的Corosync+Pacemaker还是OracleGridInfrastructure,都需要完成集群资源的管控以及资源隔离。WSFC会把和SQLserver相关的资源实现转移及隔离,如节点,IP,磁盘资源等等。本文主要描述安装WindowsWSFC,为AlwaysOn安装做准备。一、
- mysql高可用方案之MaxScale-HA-with-Corosync-Pacemaker
weixin_34092455
数据库runtime后端
前面一篇文章已经实现了mysql的主从复制以及MHA的高可用,那么接下来这一章就要实现Maxscale的读写分离和HA,对于Maxscale的HA可以用keepalived、Heartbeat来实现,不过官方推荐corosync+pacemaker,熟悉高可用的朋友们就会知道corosync+pacemaker更加强大,配置灵活,corosync则允许为不同的资源组配置不同的主服务,在corosy
- corosync+openais+pacemaker+drbd+web
weixin_33882452
运维开发工具操作系统
corosync和openais各自都能实现群集功能,但是功能比较简单,要想实现功能齐全、复杂的群集,需要将两者结合起来。二者主要提供心跳探测,但是没有资源管理能力。pacemaker可以提供资源管理能力,是从heartbeat的v3版本中分离出来的一个项目高可用群集要求:硬件一致性软件(系统)一致性时间一致性名称互相能够解析案例一:corosync+openais+pacemaker+web1.
- drbd脑裂恢复
hengrjgc
Linux运维
最近在弄服务器方面的东西。数据库高可用方面我使用了drbd+corosync+pacemaker的技术。drbd的原理是自动地将数据库数据同步,比如我有两个节点,相互连接,数据库修改后会自动同步到另外一个节点中去。不过不可避免的会发生脑裂的现象。就如下面截图所示。截图不太好,不过也能说明问题,第一个是备结点的状态,第二张是主结点的状态。所对应的都是Unknown这说明了。发生了脑裂。该如何修复?我
- keep
Phyllostachys01
简介什么是keepalived呢?keepalived是实现高可用的一种轻量级的技术手段,主要用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生。之所以说keepalived是轻量级的,是相对于corosync+ldirectord来说的。keepalived也可以实现高可用集群,而且配置起来比corosync+ldirectord简单方便很多,keepalive
- LeetCode[位运算] - #137 Single Number II
Cwind
javaAlgorithmLeetCode题解位运算
原题链接:#137 Single Number II
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一
- 《JavaScript语言精粹》笔记
aijuans
JavaScript
0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。
1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。
2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是
- 你应该更新的Java知识之常用程序库
Kai_Ge
java
在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。
Guava
Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。
guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该
- HttpClient
120153216
httpclient
/**
* 可以传对象的请求转发,对象已流形式放入HTTP中
*/
public static Object doPost(Map<String,Object> parmMap,String url)
{
Object object = null;
HttpClient hc = new HttpClient();
String fullURL
- Django model字段类型清单
2002wmj
django
Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。 Cha
- 在SQLSERVER中查找消耗CPU最多的SQL
357029540
SQL Server
返回消耗CPU数目最多的10条语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_of
- Myeclipse项目无法部署,Undefined exploded archive location
7454103
eclipseMyEclipse
做个备忘!
错误信息为:
Undefined exploded archive location
原因:
在工程转移过程中,导致工程的配置文件出错;
解决方法:
 
- GMT时间格式转换
adminjun
GMT时间转换
普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。
1、可以使用
SimpleDateFormat SimpleDateFormat
EEE-三位星期
d-天
MMM-月
yyyy-四位年
- Oracle数据库新装连接串问题
aijuans
oracle数据库
割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下:
Fatal NI connect error 12170.
VERSION INFORMATION: TNS for Linux: Version 10.2.0.4.0 - Product
- 回顾java数组复制
ayaoxinchao
java数组
在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方
- java web会话监听并使用spring注入
bewithme
Java Web
在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。
import java.util.ArrayList;
import java.ut
- NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)
bijian1013
redis数据库NoSQL
一 .Redis常用命令
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。
a.键值相关命令
b.服务器相关命令
1.键值相关命令
&
- java枚举序列化问题
bingyingao
java枚举序列化
对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题:
1.加一个枚举值
新机器代码读分布式缓存中老对象,没有问题,不会抛异常。
老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。
2.删一个枚举值
新机器代码读分布式缓存中老对象,反序列
- 【Spark七十八】Spark Kyro序列化
bit1129
spark
当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。
Spark
- Hybridizing OO and Functional Design
bookjovi
erlanghaskell
推荐博文:
Tell Above, and Ask Below - Hybridizing OO and Functional Design
文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,
- Java-Collections Framework学习与总结-HashMap
BrokenDreams
Collections
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。
&nb
- 读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请
* bylijinnan
*/
abstract class Handler {
/*
- Android中启动外部程序
cherishLC
android
1、启动外部程序
引用自:
http://blog.csdn.net/linxcool/article/details/7692374
//方法一
Intent intent=new Intent();
//包名 包名+类名(全路径)
intent.setClassName("com.linxcool", "com.linxcool.PlaneActi
- summary_keep_rate
coollyj
SUM
BEGIN
/*DECLARE minDate varchar(20) ;
DECLARE maxDate varchar(20) ;*/
DECLARE stkDate varchar(20) ;
DECLARE done int default -1;
/* 游标中 注册服务器地址 */
DE
- hadoop hdfs 添加数据目录出错
daizj
hadoophdfs扩容
由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误:
2014-11-18 08:51:39,128 WARN org.apache.hadoop.h
- grep 目录级联查找
dongwei_6688
grep
在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数:
grep -n -r "GET" .
上面的命令将会找出当前目录“.”及当前目录中所有下级目录
- yii 修改模块使用的布局文件
dcj3sjt126com
yiilayouts
方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如: 'theme'=>'mythm', 那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件; 如果未配置主题,那么 yii的模块就使用 protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr
- 设计模式之单例模式
come_for_dream
设计模式单例模式懒汉式饿汉式双重检验锁失败无序写入
今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。
*********************************
- 8、数组
豆豆咖啡
二维数组数组一维数组
一、概念
数组是同一种类型数据的集合。其实数组就是一个容器。
二、好处
可以自动给数组中的元素从0开始编号,方便操作这些元素
三、格式
//一维数组
1,元素类型[] 变量名 = new 元素类型[元素的个数]
int[] arr =
- Decode Ways
hcx2013
decode
A message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26
Given an encoded message containing digits, det
- Spring4.1新特性——异步调度和事件机制的异常处理
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- squid3(高命中率)缓存服务器配置
liyonghui160com
系统:centos 5.x
需要的软件:squid-3.0.STABLE25.tar.gz
1.下载squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
tar zxf squid-3.0.STABLE25.tar.gz &&
- 避免Java应用中NullPointerException的技巧和最佳实践
pda158
java
1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。 总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常
Object unk
- 如何在Swift语言中创建http请求
shoothao
httpswift
概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。
如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。
在这里,我将作出一些建议来回答上述问题。常见的
- Spring事务的传播方式
uule
spring事务
传播方式:
新建事务
required
required_new - 挂起当前
非事务方式运行
supports
&nbs