Version brute à commenter
load balancer
Installation des outils pour la gestion d'un load balancer
yum install ipvsadm
modprobe iptable_mangle
modprobe iptable_filter
On ignore les requetes arp de localhost
cat
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
>> /etc/sysctl.conf
sysctl -p
cat -A -f 1 -s wrr -p 1800
-a -f 1 -r 192.168.248.100:0 -g -w 1
-a -f 1 -r 192.168.248.249:0 -g -w 1
>> /etc/sysconfig/ipvsadm
/etc/init.d/ipvsadm reload
iptables -t mangle -I PREROUTING 1 -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -d 192.168.248.13 -p tcp --dport 38080 -j CONNMARK --save-mark
iptables -t mangle -A PREROUTING -d 192.168.248.13 -p tcp --dport 38080 -j MARK --set-mark 0x1
/etc/init.d/iptables save
/etc/init.d/iptables restart
serveurs destinations
cat net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
>> /etc/sysctl.conf
sysctl -p
ifconfig lo:0 192.168.248.13 netmask 255.255.255.255
administration
list :
ipvsadm -L -n
desactivate :
ipvsadm -d -r 192.168.248.100:0 -f 1
restore :
ipvsadm -a -r 192.168.248.100:0 -f 1 -g -w 1
jeudi 26 novembre 2009
mardi 26 mai 2009
Java : Gestion des listes; généricité et problème d'héritage
Voici la description d'un problème simple concernant les génériques en Java.
Dans une classe commande qui permet de gérer la commande d'un client dans un site marchand, nous devons y stocker la liste des lignes de commandes (OrderLines).
Devant gérer plusieurs types de lignes de commandes en fonction des produits commandés : Téléphone (géré par la classe ObjectOrderLine), abonnement (géré par la classe SubscriptionOrderLine)
Notre classe commande ressemblera donc à cela
class Order {
private long id;
private User user;
private List orderLines;
...
}
Le client commande une liste d'objet & accessoires
List orderedObjects = new ArrayList ();
Il ne sera pas possible de faire
order.getOrderLines.addAll(orderedObjects);
En effet, le compilateur s'attend à avoir une liste d'objet du type OrderLine et non pas une de ses sous classes.
Dans ce cas, il suffit d'utiliser les wildcards pour s'en sortir aisement.
class Order {
private List orderLines;
}
Dans une classe commande qui permet de gérer la commande d'un client dans un site marchand, nous devons y stocker la liste des lignes de commandes (OrderLines).
Devant gérer plusieurs types de lignes de commandes en fonction des produits commandés : Téléphone (géré par la classe ObjectOrderLine), abonnement (géré par la classe SubscriptionOrderLine)
Notre classe commande ressemblera donc à cela
class Order {
private long id;
private User user;
private List
...
}
Le client commande une liste d'objet & accessoires
List
Il ne sera pas possible de faire
order.getOrderLines.addAll(orderedObjects);
En effet, le compilateur s'attend à avoir une liste d'objet du type OrderLine et non pas une de ses sous classes.
Dans ce cas, il suffit d'utiliser les wildcards pour s'en sortir aisement.
class Order {
private List orderLines;
}
Inscription à :
Articles (Atom)